<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>回顾ES6中的扩展运算符</title>
</head>
<body>

<script>
    let arr =[1,2,3]
    // 把数组两边的中括号脱掉
    console.log(...arr)

    let o1 = {
        x:1,
        y:1
    }

    // ...o1 表示把 o1 对象上的{}脱掉
    // console.log(...o1)  这个不行


    let o2 = {...o1}
    // 脱掉之后再穿上
    console.log({...o1})

    console.log(o1 === o2)


    // 如果...扩展运算符使用在对象上，一般用于对象属性的合并
    let o3 ={
        x:1,
        y:1
    }

    let o4 ={
        k:1,
        f:1
    }

    let o5 = {
        m:1,
        n:1
    }


    // 以上的 o3 o4 o5 对象中所有的属性全部合并，生成一个全新的对象
    let o6 = {...o3,...o4,...o5}

    console.log(o6)

    let o7 = {k:1,...o1,f:1}

    console.log(o7)


</script>

</body>
</html>